﻿using System;
using System.Collections.Generic;
using System.Text;
using T.FAS.Runtime.Expression.Entity;

namespace T.FAS.Runtime.Metadata.SPI
{
    public interface IExprProvider
    {
        /// <summary>
        /// 获取表达式项列表 Scope用
        /// </summary>
        /// <param name="type">Page/DataQuery/WorkFlow</param>
        /// <param name="Id">MetaDataID</param>
        /// <param name="exprMetaDataID">exprMetaDataID</param>
        List<ExprItem> GetExprItems(string type, string typeId, string exprMetaDataID);
        /// <summary>
        /// 获取表达式子项列表 懒加载调用接口
        /// </summary>
        /// <param name="item"></param>
        List<ExprItem> GetExprChildrenItems(List<ExprItem> item, bool IsContainExt, string projectBranchId);
        /// <summary>
        /// 获取表达式子项列表 懒加载调用接口
        /// </summary>
        /// <param name="item"></param>
        List<ExprItem> GetExprChildrenItems(ExprItem item, bool IsContainExt,string projectBranchId);
        /// <summary>
        /// 获获取增量数据
        /// </summary>
        /// <param name="dateTime"></param>
        List<ExprItem> GetExprIncrementalItems(string exprMetaDataID, DateTime dateTime);
    }
}
